package demo.aop.aspect;


import lombok.extern.slf4j.Slf4j;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.springframework.stereotype.Component;

@Aspect
@Component
@Slf4j
public class DemoAspectArgs {


    //限制参数列表的类型为 ( )，切入没有参数的方法
    @Before("execution(* demo.aop.controller..*.*(..)) && args( )")
    public void cut() {
        log.info("限制参数列表的类型为 ()");
    }


    //限制参数列表的类型为 ( String, Integer)
        @Before("execution(* demo.aop.controller..*.*(..)) && args( String, Integer)")
    public void cut1() {
        log.info("限制参数列表的类型为 ( String, Integer)");
    }

    //参数引用，讲切入点的参数引入到通知里面去
    @Before("execution(* demo.aop.controller..*.*(..)) && args( name, age)")
    public void cut2(String name, Integer age) {
        log.info("参数引用，讲切入点的参数引入到通知里面去");
        log.info(name);
        log.info(age.toString());
    }
}
